#ifndef _DICTPRODUCER_H_
#define _DICTPRODUCER_H_

#include<string>
#include<vector>
#include<map>
#include<set>

using std::string;
using std::vector;
using std::pair;
using std::map;
using std::set;


//class SplitTool;

class DictProducer
{
public:
    DictProducer(const string &);       //构造函数
    //DictProducer(const string &,SplitTool *SplitTool);      //构造函数，专为中文处理
    ~DictProducer();
    
    void start();                   //开始    
private:
    void buildEnDict();            //创建英文词典
    void buildEnIndex();            //创建英文索引
    //void buildCnDic();              //创建中文词典
    void storeDict();           //将英文存入
    void storeIndex();  //将英文索引存入
    //void getFile();                 //获取文件的绝对路径
    void pushDict(const string & word);     //存储某个单词

    //test function
    //void showFiles()const;          //查看文件路径，做测试用
    //void showDict()const;           //查看词典，做测试用


private:
    vector<string> _files;      //语料库文件的绝对路径集合      一个个打开语料库文件，然后写入词典？？
    vector<pair<string,int>> _dict;      //词典
    map<string,int>_tmp;
    //SplitTool *_splitTool;          //分词工具
    map<char,set<int>> _index;    //词典索引
    set<string>_stopWord;       //停用词
};

#endif
